
/** 菜单页面按钮权限数据 */
export default class MenuPageResponse  { 
  /** 主键id */
  id!:string;
  /** 菜单/页面/按钮权限名称 */
  text!:string;
  /** 父级节点id */
  parentId!:string;
  /** 菜单绑定的主页面id */
  mainPageId!:string;
  /** 前端uri资源路径 */
  uri!:string;
  /** 节点类型 1:菜单 2：页面  3：按钮权限  */
  nodeType!:EnumStruct<SysAuthResEnum_ResourceType>;
  /** 菜单图标 */
  menuIcon!:string;
  /** 菜单是否展示 0:展示 1:不展示 */
  menuVisible!:EnumStruct<SysMenuEnum_MenuIsShow>;
  /** 系统模块名称 */
  sysModName!:string;
  /** 子对象菜单/页面 */
  children!:MenuPageResponse[];
  /** 页面可用权限资源集合 资源编码集合 */
  authResourcesNo!:string[];


  /**通过JSONObject创建实例对象 */
  public static getInstanceByJSONObj(jsonObj:any):MenuPageResponse{  
    let instance=new MenuPageResponse()  
    return Object.assign(instance, jsonObj) 
  }


  /** 通过属性参数创建实例对象 */
  public static getInstanceByParam(id:string,text:string
                                   ,parentId:string,mainPageId:string
                                   ,uri:string,nodeType:EnumStruct<SysAuthResEnum_ResourceType>
                                   ,menuIcon:string,menuVisible:EnumStruct<SysMenuEnum_MenuIsShow>
                                   ,sysModName:string,children:MenuPageResponse[]
                                   ,authResourcesNo:string[]){ 
    let instance=new MenuPageResponse()  
    instance.id=id;
    instance.text=text;
    instance.parentId=parentId;
    instance.mainPageId=mainPageId;
    instance.uri=uri;
    instance.nodeType=nodeType;
    instance.menuIcon=menuIcon;
    instance.menuVisible=menuVisible;
    instance.sysModName=sysModName;
    instance.children=children;
    instance.authResourcesNo=authResourcesNo;
    return instance 
  }


  /** 类属性的申明静态变量(适用于直接用到Class.fieldName的场景) */
   static fieldNames={
       /**主键id*/
      id:"id",
      /**菜单/页面/按钮权限名称*/
      text:"text",
      /**父级节点id*/
      parentId:"parentId",
      /**菜单绑定的主页面id*/
      mainPageId:"mainPageId",
      /**前端uri资源路径*/
      uri:"uri",
      /**节点类型 1:菜单 2：页面  3：按钮权限 */
      nodeType:{code:"nodeType.code",value:"nodeType.value",this:"nodeType"},
      /**菜单图标*/
      menuIcon:"menuIcon",
      /**菜单是否展示 0:展示 1:不展示*/
      menuVisible:{code:"menuVisible.code",value:"menuVisible.value",this:"menuVisible"},
      /**系统模块名称*/
      sysModName:"sysModName",
      /**子对象菜单/页面*/
      children:"children",
      /**页面可用权限资源集合 资源编码集合*/
      authResourcesNo:"authResourcesNo" } 
}

